//============================================================================
/**
 *
 *	@file		musenm_obj.h
 *	@brief		ポケスロンミュージアム OBJ管理モジュール
 *	@author		hosaka genya
 *	@data		2008.08.06
 *
 */
//============================================================================
#pragma once
#include "savedata/pkthln_svdata.h"
#include "system/clact_tool.h"

//--------------------------------------------------------------
///	ミュージアム画面共通 OBJワーク
//==============================================================
typedef struct _MUSEUM_OBJ_WORK MUSEUM_OBJ_WORK;

//=============================================================================
/**
 *								定数定義
 */
//=============================================================================
enum
{
	OBJ_ANM_MEDAL_SPD = 0,
	OBJ_ANM_MEDAL_POW,
	OBJ_ANM_MEDAL_TEC,
	OBJ_ANM_MEDAL_STA,
	OBJ_ANM_MEDAL_JMP,
	OBJ_ANM_MEDAL_MAX,

	OBJ_ANM_ARROW_L = 0,
	OBJ_ANM_ARROW_R,
};

//=============================================================================
/**
 *								構造体定義
 */
//=============================================================================

//--------------------------------------------------------------
///	OBJID 参照用
//==============================================================
typedef struct {
	u32 chr;
	u32 pal;
	u32 cel;
	u32 anm;
} MUSEUM_OBJ_ID;

//=============================================================================
/**
 *								プロトタイプ宣言
 */
//=============================================================================
extern MUSEUM_OBJ_WORK* MUSEUM_OBJ_Create( HEAPID heapID, TCATS_RESOURCE_NUM_LIST* p_crnl, u32 obj_id_max );
extern void MUSEUM_OBJ_Delete( MUSEUM_OBJ_WORK * wk, CATS_ACT_PTR* p_cap , u32 obj_id_max );
extern void MUSEUM_OBJ_Draw( MUSEUM_OBJ_WORK* wk );
extern CATS_ACT_PTR MUSEUM_OBJ_Add( MUSEUM_OBJ_WORK* wk, const TCATS_OBJECT_ADD_PARAM_S* coap_s );
extern void MUSEUM_OBJ_AddMater( MUSEUM_OBJ_WORK* wk, CATS_ACT_PTR* p_cap, const MUSEUM_OBJ_ID* p_obj_id, u32 num, u32 head_idx, s16 def_x, s16 def_y, BOOL b_mainLCD );
// -- pokegra --
extern void MUSEUM_OBJ_POKEGRA_LoadResDummy( CATS_SYS_PTR csp, CATS_RES_PTR crp, const MUSEUM_OBJ_ID* p_obj_id, NNS_G2D_VRAM_TYPE vram_type );
extern void MUSEUM_OBJ_POKEGRA_Trans( CATS_ACT_PTR p_cap, const MONS_DATA* p_mons, BOOL b_LCD_main, BOOL b_gray, HEAPID heapID );
// -- poke icon --
extern void MUSEUM_OBJ_POKEICON_LoadRes( MUSEUM_OBJ_WORK* wk, const MUSEUM_OBJ_ID* p_obj_id, int num, BOOL b_disp_m, BOOL b_anm );
extern void MUSEUM_OBJ_POKEICON_Draw( MUSEUM_OBJ_WORK* wk, CATS_ACT_PTR p_cap, const MONS_DATA* p_mons, BOOL b_LCD_main, BOOL b_anm );
// -- get ptr --
extern CATS_SYS_PTR MUSEUM_OBJ_GetCsp( MUSEUM_OBJ_WORK* wk );
extern CATS_RES_PTR MUSEUM_OBJ_GetCrp( MUSEUM_OBJ_WORK* wk );
// --
extern void MUSEUM_OBJ_CgxChangeTrans( CATS_ACT_PTR cap, u8* buf, u32 siz );